﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LearningCompany_DAO
{
    public partial class Formation
    {
        #region Attributs et accesseurs
        public bool Elearning
        {
            get
            {
                return this is FormationElearning;
            }
        }
        #endregion

        #region Constructeurs

        #endregion

        #region Méthodes
        public static List<Formation> GetListeInstances(string aLibelle)
        {
            return (from oFormation in ContexteDAO.ContexteDonnees.Formation
                    where oFormation.Libelle.Contains(aLibelle)
                    select oFormation).ToList();
        }

        public static Formation GetInstance(int aIdentifiant)
        {
            return (from oFormation in ContexteDAO.ContexteDonnees.Formation
                    where oFormation.Identifiant == aIdentifiant
                    select oFormation).FirstOrDefault();
        }

        public List<Formateur> GetListeFormateurs()
        {
            return this.Formateurs.ToList();
        }

        public List<SessionFormation> GetListeSessionsFormation()
        {
            return this.SessionsFormation.ToList();
        }

        public SessionFormation Planifier(DateTime aDateDebut, DateTime oDateFin, bool aEstInter, Commercial aCommercial, Formateur aFormateur)
        {
            SessionFormation oSessionFormation;
            oSessionFormation = LearningCompany_DAO.SessionFormation.CreateSessionFormation(0, aDateDebut, oDateFin, aEstInter, aFormateur.Identifiant, aCommercial.Identifiant, this.Identifiant);
            oSessionFormation.Formateur = aFormateur;
            oSessionFormation.Commercial = aCommercial;
            this.SessionsFormation.Add(oSessionFormation);
            return oSessionFormation;
        }

        public void Ajouter()
        {
            // Ajout de la formation dans le contexte de données.
            ContexteDAO.ContexteDonnees.AddObject("Formation", this);

            // Persistance du contexte de données.
            ContexteDAO.Enregistrer();
        }
        #endregion
    }
}
